#include <stdint.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/eventfd.h>

int main()
{
    //eventfd 通过创建一个文件描述符，然后可以对该描述符进行读取和写入操作来进行通信
    //EFD_CLOEXEC：禁止进程复制  EFD_NONBLOCK：启动非阻塞属性
    int efd=eventfd(0,EFD_CLOEXEC | EFD_NONBLOCK); 
    if(efd<0)
    {
        perror("eventfd failed!");
        return -1;
    }
    uint64_t val=1;
    write(efd,&val,sizeof(val));
    write(efd,&val,sizeof(val));
    //write(efd,&val,sizeof(val));
    uint64_t res=0;
    read(efd,&res,sizeof(res));
    printf("%ld\n",res);

    close(efd);
    return 0;
}